//package com.tencent.liteav.demo.liveroom.ui.fragment
//
//import android.app.Activity
//import android.content.Context
//import android.content.Intent
//import android.graphics.BitmapFactory
//import android.graphics.Color
//import android.graphics.drawable.AnimationDrawable
//import android.net.Uri
//import android.os.Bundle
//import android.text.SpannableStringBuilder
//import android.text.Spanned
//import android.text.method.LinkMovementMethod
//import android.text.style.ClickableSpan
//import android.text.style.ForegroundColorSpan
//import android.view.LayoutInflater
//import android.view.View
//import android.view.View.OnTouchListener
//import android.view.ViewGroup
//import android.view.WindowManager
//import android.widget.*
//import androidx.appcompat.app.AlertDialog
//import androidx.fragment.app.Fragment
//import com.tencent.liteav.demo.beauty.constant.BeautyConstants
//import com.tencent.liteav.demo.beauty.model.ItemInfo
//import com.tencent.liteav.demo.beauty.model.TabInfo
//import com.tencent.liteav.demo.beauty.view.BeautyPanel
//import com.tencent.liteav.demo.beauty.view.BeautyPanel.OnBeautyListener
//import com.tencent.liteav.demo.liveroom.IMLVBLiveRoomListener
//import com.tencent.liteav.demo.liveroom.IMLVBLiveRoomListener.*
//import com.tencent.liteav.demo.liveroom.R
//import com.tencent.liteav.demo.liveroom.roomutil.commondef.AnchorInfo
//import com.tencent.liteav.demo.liveroom.roomutil.commondef.AudienceInfo
//import com.tencent.liteav.demo.liveroom.roomutil.commondef.MLVBCommonDef.LiveRoomErrorCode
//import com.tencent.liteav.demo.liveroom.roomutil.commondef.RoomInfo
//import com.tencent.liteav.demo.liveroom.roomutil.misc.HintDialog
//import com.tencent.liteav.demo.liveroom.roomutil.widget.RoomListViewAdapter.ChatMessageAdapter
//import com.tencent.liteav.demo.liveroom.roomutil.widget.RoomListViewAdapter.TextChatMsg
//import com.tencent.liteav.demo.liveroom.roomutil.widget.SwipeAnimationController
//import com.tencent.liteav.demo.liveroom.roomutil.widget.TextMsgInputDialog
//import com.tencent.liteav.demo.liveroom.ui.LiveRoomActivityInterface
//import com.tencent.rtmp.TXLiveConstants
//import com.tencent.rtmp.ui.TXCloudVideoView
//import kotlinx.android.synthetic.main.mlvb_fragment_live_room_chat.*
//import kotlinx.android.synthetic.main.mlvb_layout_liveroom_online_pusher.*
//import java.text.SimpleDateFormat
//import java.util.*
//
//class LiveRoomChatFragment : Fragment(), IMLVBLiveRoomListener {
//    private var mActivity: Activity? = null
//    private var mActivityInterface: LiveRoomActivityInterface? = null
//    private var mSelfUserID: String? = null
//    private var mRoomInfo: RoomInfo? = null
//    private val mPusherList: MutableList<AnchorInfo>? = ArrayList()
//    private val mPlayerViews: MutableList<RoomVideoView> = ArrayList()
//    private var mChatMsgList: ArrayList<TextChatMsg>? = null
//    private var mChatMsgAdapter: ChatMessageAdapter? = null
//    private var mTextMsgInputDialog: TextMsgInputDialog? = null
//    private var mSwipeAnimationController: SwipeAnimationController? = null
//    private val mBeautyLevel = 5
//    private val mWhiteningLevel = 3
//    private val mRuddyLevel = 2
//    private val mBeautyStyle = TXLiveConstants.BEAUTY_STYLE_SMOOTH
//    private var mCreateRoom: Boolean = false
//    private var mPusherMute = false
//    override fun onAttach(context: Context) {
//        super.onAttach(context)
//        mActivity = context as Activity
//        mActivityInterface = context as LiveRoomActivityInterface
//    }
//
//    override fun onCreateView(
//        inflater: LayoutInflater,
//        container: ViewGroup?,
//        savedInstanceState: Bundle?
//    ): View? {
//        val view = inflater.inflate(R.layout.mlvb_fragment_live_room_chat, container, false)
//        //切换摄像头
//        mlvb_rtmproom_camera_switcher_btn.setOnClickListener {
//            if (mActivityInterface != null) {
//                mActivityInterface!!.liveRoom.switchCamera()
//            }
//        }
//        //美颜p图部分
//        val defaultBeauty = mlvb_layout_face_beauty.defaultBeautyInfo
//        defaultBeauty?.beautyBg = BeautyConstants.BEAUTY_BG_GRAY
//        mlvb_layout_face_beauty.setBeautyInfo(defaultBeauty)
//        mlvb_layout_face_beauty.setBeautyManager(mActivityInterface!!.liveRoom.beautyManager)
//        mlvb_layout_face_beauty.setOnBeautyListener(object : OnBeautyListener() {
//            override fun onTabChange(
//                tabInfo: TabInfo,
//                position: Int
//            ) {
//            }
//
//            override fun onClose(): Boolean {
//                mlvb_layout_face_beauty.visibility =
//                    if (mlvb_layout_face_beauty.getVisibility() == View.VISIBLE) View.INVISIBLE else View.VISIBLE
//                mlvb_ll_controller_container.visibility =
//                    if (mlvb_layout_face_beauty.visibility == View.VISIBLE) View.INVISIBLE else View.VISIBLE
//                return true
//            }
//
//            override fun onClick(
//                tabInfo: TabInfo,
//                tabPosition: Int,
//                itemInfo: ItemInfo,
//                itemPosition: Int
//            ): Boolean {
//                return false
//            }
//
//            override fun onLevelChanged(
//                tabInfo: TabInfo,
//                tabPosition: Int,
//                itemInfo: ItemInfo,
//                itemPosition: Int,
//                beautyLevel: Int
//            ): Boolean {
//                return false
//            }
//        })
//        mlvb_rtmproom_beauty_btn.setOnClickListener {
//            mlvb_layout_face_beauty.visibility =
//                if (mlvb_layout_face_beauty.visibility == View.VISIBLE) View.INVISIBLE else View.VISIBLE
//            mlvb_ll_controller_container.visibility =
//                if (mlvb_layout_face_beauty.visibility == View.VISIBLE) View.INVISIBLE else View.VISIBLE
//        }
//
//        //静音推流
//        mlvb_rtmproom_mute_btn.setOnClickListener { v ->
//            mPusherMute = !mPusherMute
//            mActivityInterface!!.liveRoom.muteLocalAudio(mPusherMute)
//            v.setBackgroundResource(if (mPusherMute) R.drawable.mlvb_mic_disable else R.drawable.mlvb_mic_normal)
//        }
//
//        //发送消息
//        mlvb_rtmproom_chat_btn.setOnClickListener { showInputMsgDialog() }
//        mTextMsgInputDialog = TextMsgInputDialog(mActivity?.applicationContext)
//        mTextMsgInputDialog?.setOnTextSendListener { msg-> sendMessage(msg) }
//        if (!mCreateRoom) {
//            //普通观众隐藏掉切换摄像头、美颜和静音推流的入口、PK入口
//            mlvb_rtmproom_camera_switcher_btn.visibility = View.GONE
//            mlvb_rtmproom_beauty_btn.visibility = View.GONE
//            mlvb_rtmproom_mute_btn.visibility = View.GONE
//        }
//        mChatMsgList = ArrayList()
//        mChatMsgAdapter = ChatMessageAdapter(mActivity, mChatMsgList)
//        mlvb_chat_list_view.adapter = mChatMsgAdapter
//        mlvb_chat_list_view.setOnTouchListener { v, event ->
//            mlvb_ll_controller_container.visibility = View.VISIBLE
//            mlvb_layout_face_beauty.visibility = View.INVISIBLE
//            false
//        }
//        mSwipeAnimationController = SwipeAnimationController(mActivity)
//        mSwipeAnimationController!!.setAnimationView(mlvb_rl_chat_layout)
//        view.setOnTouchListener { _, event ->
//            mlvb_ll_controller_container.visibility = View.VISIBLE
//            mlvb_layout_face_beauty.visibility = View.INVISIBLE
//            mSwipeAnimationController!!.processEvent(event)
//        }
//        return view
//    }
//
//    override fun onActivityCreated(savedInstanceState: Bundle?) {
//        super.onActivityCreated(savedInstanceState)
//        val bundle = arguments
////        mRoomInfo = bundle?.getParcelable("roomInfo")
//        mSelfUserID = bundle?.getString("userID")
//        mCreateRoom = bundle?.getBoolean("createRoom") ?: false
//        if (mSelfUserID == null || !mCreateRoom && mRoomInfo == null) {
//            return
//        }
//        mlvb_video_view_full_screen.setLogMargin(12f, 12f, 80f, 60f)
//        if (mCreateRoom) {
//            mActivityInterface?.run {
//                this.liveRoom?.run {
//                    startLocalPreview(true, mlvb_video_view_full_screen)
//                    setCameraMuteImage(
//                        BitmapFactory.decodeResource(
//                            resources, R.drawable.mlvb_pause_publish
//                        )
//                    )
//                    setBeautyStyle(mBeautyStyle, mBeautyLevel, mWhiteningLevel, mRuddyLevel)
//                    muteLocalAudio(mPusherMute)
//                    createRoom("", mRoomInfo?.roomInfo, object : CreateRoomCallback {
//                        override fun onSuccess(roomId: String) {
//                            mRoomInfo?.roomID = roomId
//                        }
//
//                        override fun onError(errCode: Int, e: String) {
//                            errorGoBack(
//                                getString(R.string.mlvb_create_live_room_error),
//                                errCode,
//                                e
//                            )
//                        }
//                    })
//                }
//            }
//        } else {
//            mActivityInterface?.run {
//                liveRoom?.run {
//                    enterRoom(mRoomInfo?.roomID, mRoomInfo?.mixedPlayURL,
//                        mlvb_video_view_full_screen,
//                        object : EnterRoomCallback {
//                            override fun onError(errCode: Int, errInfo: String) {
//                                errorGoBack(
//                                    getString(R.string.mlvb_join_live_room_error),
//                                    errCode,
//                                    errInfo
//                                )
//                            }
//
//                            override fun onSuccess() {}
//                        })
//                }
//            }
//        }
//    }
//
//    override fun onDestroyView() {
//        super.onDestroyView()
//        mPlayerViews.clear()
//        mActivityInterface?.liveRoom?.stopLocalPreview()
//    }
//
//    override fun onDestroy() {
//        super.onDestroy()
//        recycleVideoView()
//    }
//
//    override fun onDetach() {
//        super.onDetach()
//        mActivity = null
//        mActivityInterface = null
//    }
//
//    fun onBackPressed() {
//        if (mActivityInterface != null) {
//            mActivityInterface?.liveRoom?.exitRoom(object : ExitRoomCallback {
//                override fun onError(errCode: Int, errInfo: String) {}
//                override fun onSuccess() {
//                    recycleVideoView()
//                    backStack()
//                }
//            })
//        }
//    }
//
//    private fun errorGoBack(
//        title: String,
//        errCode: Int,
//        errInfo: String
//    ) {
//        var errInfo = errInfo
//        mActivityInterface?.liveRoom?.exitRoom(null)
//        var spannableStrBuidler: SpannableStringBuilder?
//        errInfo = "$errInfo[$errCode]"
//        when (errCode) {
//            LiveRoomErrorCode.ERROR_LICENSE_INVALID -> {
//                val start =
//                    (errInfo + getString(R.string.mlvb_license_click_info)).length
//                val end =
//                    (errInfo + getString(R.string.mlvb_license_click_use_info)).length
//                spannableStrBuidler =
//                    SpannableStringBuilder(errInfo + getString(R.string.mlvb_license_click_use_info) + "]")
//                val clickableSpan: ClickableSpan = object : ClickableSpan() {
//                    override fun onClick(view: View) {
//                        val intent = Intent()
//                        intent.action = "android.intent.action.VIEW"
//                        val content_url =
//                            Uri.parse("https://cloud.tencent.com/document/product/454/34750")
//                        intent.data = content_url
//                        startActivity(intent)
//                    }
//                }
//                spannableStrBuidler.setSpan(
//                    ForegroundColorSpan(Color.BLUE),
//                    start,
//                    end,
//                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
//                )
//                spannableStrBuidler.setSpan(
//                    clickableSpan,
//                    start,
//                    end,
//                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
//                )
//            }
//            10036 /*IM 创建聊天室数量超过限额错误*/ -> {
//                val start =
//                    getString(R.string.mlvb_excess_start).length
//                val end =
//                    getString(R.string.mlvb_excess_end).length
//                spannableStrBuidler =
//                    SpannableStringBuilder(getString(R.string.mlvb_excess_content))
//                val clickableSpan: ClickableSpan = object : ClickableSpan() {
//                    override fun onClick(view: View) {
//                        val intent = Intent()
//                        intent.action = "android.intent.action.VIEW"
//                        val content_url =
//                            Uri.parse("https://buy.cloud.tencent.com/avc")
//                        intent.data = content_url
//                        startActivity(intent)
//                    }
//                }
//                spannableStrBuidler.setSpan(
//                    ForegroundColorSpan(Color.BLUE),
//                    start,
//                    end,
//                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
//                )
//                spannableStrBuidler.setSpan(
//                    clickableSpan,
//                    start,
//                    end,
//                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
//                )
//            }
//            else -> {
//                spannableStrBuidler = SpannableStringBuilder(errInfo)
//            }
//        }
//        val tv = TextView(mActivity)
//        tv.movementMethod = LinkMovementMethod.getInstance()
//        tv.text = spannableStrBuidler
//        tv.setPadding(20, 0, 20, 0)
//        AlertDialog.Builder(mActivity!!)
//            .setTitle(title)
//            .setView(tv)
//            .setNegativeButton(
//                getString(R.string.mlvb_ok)
//            ) { dialog, which ->
//                recycleVideoView()
//                backStack()
//            }.show()
//    }
//
//    private fun backStack() {
//        if (mActivity != null) {
//            mActivity?.runOnUiThread {
//                if (mActivity != null) {
//                    val fragmentManager =
//                        mActivity?.fragmentManager
//                    fragmentManager?.popBackStack()
//                    fragmentManager?.beginTransaction()?.commit()
//                }
//            }
//        }
//    }
//
//    private fun addMessageItem(
//        userName: String,
//        message: String,
//        aligment: TextChatMsg.Alignment
//    ) {
//        if (mActivity != null) {
//            mActivity!!.runOnUiThread {
//                val TIME_FORMAT =
//                    SimpleDateFormat("HH:mm")
//                mChatMsgList!!.add(
//                    TextChatMsg(
//                        userName,
//                        TIME_FORMAT.format(Date()),
//                        message,
//                        aligment
//                    )
//                )
//                mChatMsgAdapter!!.notifyDataSetChanged()
//                mlvb_chat_list_view.post { mlvb_chat_list_view.setSelection(mChatMsgList!!.size - 1) }
//            }
//        }
//    }
//
//    private fun sendMessage(message: String) {
//        mActivityInterface?.liveRoom?.sendRoomTextMsg(message, object : SendRoomTextMsgCallback {
//            override fun onError(errCode: Int, errInfo: String) {
//                AlertDialog.Builder(
//                    mActivity!!,
//                    R.style.MlvbRtmpRoomDialogTheme
//                ).setMessage(errInfo)
//                    .setTitle(getString(R.string.mlvb_send_msg_fail))
//                    .setPositiveButton(
//                        android.R.string.ok
//                    ) { dialog, which -> dialog.dismiss() }.show()
//            }
//
//            override fun onSuccess() {
//                addMessageItem(
//                    mActivityInterface!!.selfUserName,
//                    message,
//                    TextChatMsg.Alignment.LEFT
//                )
//            }
//        })
//    }
//
//    /**
//     * 错误回调
//     *
//     *
//     * SDK 不可恢复的错误，一定要监听，并分情况给用户适当的界面提示
//     *
//     * @param errCode   错误码
//     * @param errMsg    错误信息
//     * @param extraInfo 额外信息，如错误发生的用户，一般不需要关注，默认是本地错误
//     */
//    override fun onError(
//        errCode: Int,
//        errMsg: String,
//        extraInfo: Bundle
//    ) {
//        errorGoBack("直播间错误", errCode, errMsg)
//    }
//
//    /**
//     * 警告回调
//     *
//     * @param warningCode 错误码 TRTCWarningCode
//     * @param warningMsg  警告信息
//     * @param extraInfo   额外信息，如警告发生的用户，一般不需要关注，默认是本地错误
//     */
//    override fun onWarning(
//        warningCode: Int,
//        warningMsg: String,
//        extraInfo: Bundle
//    ) {
//    }
//
//    override fun onDebugLog(log: String) {}
//
//    /**
//     * 房间被销毁的回调
//     *
//     *
//     * 主播退房时，房间内的所有用户都会收到此通知
//     *
//     * @param roomID 房间ID
//     */
//    override fun onRoomDestroy(roomID: String) {
//        if (mCreateRoom == false) {
//            HintDialog.Builder(mActivity)
//                .setTittle(getString(R.string.mlvb_system_msg))
//                .setContent(
//                    getString(
//                        R.string.mlvb_live_room_destroy,
//                        if (mRoomInfo != null) mRoomInfo!!.roomInfo else "null"
//                    )
//                )
//                .setButtonText(getString(R.string.mlvb_back))
//                .setDismissListener { onBackPressed() }.show()
//        }
//    }
//
//    /**
//     * 收到新主播进房通知
//     *
//     *
//     * 房间内的主播（和连麦中的观众）会收到新主播的进房事件，您可以调用 [MLVBLiveRoom.startRemoteView] 显示该主播的视频画面。
//     *
//     * @param anchorInfo 新进房用户信息
//     * @note 直播间里的普通观众不会收到主播加入和推出的通知。
//     */
//    override fun onAnchorEnter(anchorInfo: AnchorInfo) {
//        if (anchorInfo == null || anchorInfo.userID == null) {
//            return
//        }
//        val videoView = applyVideoView(anchorInfo.userID) ?: return
//        if (mPusherList != null) {
//            var exist = false
//            for (item in mPusherList) {
//                if (anchorInfo.userID.equals(item.userID, ignoreCase = true)) {
//                    exist = true
//                    break
//                }
//            }
//            if (exist == false) {
//                mPusherList.add(anchorInfo)
//            }
//        }
//        videoView.startLoading()
//        mActivityInterface!!.liveRoom
//            .startRemoteView(anchorInfo, videoView.videoView, object : PlayCallback {
//                override fun onBegin() {
//                    videoView.stopLoading(mCreateRoom) //推流成功，stopLoading 大主播显示出踢人的button
//                }
//
//                override fun onError(errCode: Int, errInfo: String) {
//                    onAnchorExit(anchorInfo)
//                    if (mCreateRoom) {
//                        mActivityInterface!!.liveRoom.kickoutJoinAnchor(anchorInfo.userID)
//                    }
//                }
//
//                override fun onEvent(event: Int, param: Bundle) {
//                    //TODO
//                }
//            })
//    }
//
//    /**
//     * 收到主播退房通知
//     *
//     *
//     * 房间内的主播（和连麦中的观众）会收到新主播的退房事件，您可以调用 [MLVBLiveRoom.stopRemoteView] 关闭该主播的视频画面。
//     *
//     * @param anchorInfo 退房用户信息
//     * @note 直播间里的普通观众不会收到主播加入和推出的通知。
//     */
//    override fun onAnchorExit(anchorInfo: AnchorInfo) {
//        if (mPusherList != null) {
//            val it =
//                mPusherList.iterator()
//            while (it.hasNext()) {
//                val item = it.next()
//                if (anchorInfo.userID.equals(item.userID, ignoreCase = true)) {
//                    it.remove()
//                    break
//                }
//            }
//        }
//        mActivityInterface!!.liveRoom.stopRemoteView(anchorInfo) //关闭远端视频渲染
//        recycleVideoView(anchorInfo.userID)
//    }
//
//    /**
//     * 收到观众进房通知
//     *
//     * @param audienceInfo 进房观众信息
//     */
//    override fun onAudienceEnter(audienceInfo: AudienceInfo) {}
//
//    /**
//     * 收到观众退房通知
//     *
//     * @param audienceInfo 退房观众信息
//     */
//    override fun onAudienceExit(audienceInfo: AudienceInfo) {}
//
//    /**
//     * 主播收到观众连麦请求时的回调
//     *
//     * @param anchorInfo 观众信息
//     * @param reason     连麦原因描述
//     */
//    override fun onRequestJoinAnchor(
//        anchorInfo: AnchorInfo,
//        reason: String
//    ) {
//    }
//
//    /**
//     * 连麦观众收到被踢出连麦的通知
//     *
//     *
//     * 连麦观众收到被主播踢除连麦的消息，您需要调用 [MLVBLiveRoom.kickoutJoinAnchor] 来退出连麦
//     */
//    override fun onKickoutJoinAnchor() {}
//
//    /**
//     * 收到请求跨房 PK 通知
//     *
//     *
//     * 主播收到其他房间主播的 PK 请求
//     * 如果同意 PK ，您需要调用 [MLVBLiveRoom.startRemoteView]  接口播放邀约主播的流
//     *
//     * @param anchorInfo 发起跨房连麦的主播信息
//     */
//    override fun onRequestRoomPK(anchorInfo: AnchorInfo) {}
//
//    /**
//     * 收到断开跨房 PK 通知
//     */
//    override fun onQuitRoomPK(anchorInfo: AnchorInfo) {}
//    override fun onRecvRoomTextMsg(
//        roomid: String,
//        userid: String,
//        userName: String,
//        userAvatar: String,
//        message: String
//    ) {
//        addMessageItem(userName, message, TextChatMsg.Alignment.LEFT)
//    }
//
//    override fun onRecvRoomCustomMsg(
//        roomID: String,
//        userID: String,
//        userName: String,
//        userAvatar: String,
//        cmd: String,
//        message: String
//    ) {
//        //do nothing
//    }
//
//    private fun showInputMsgDialog() {
//        val windowManager = mActivity!!.windowManager
//        val display = windowManager.defaultDisplay
//        val lp = mTextMsgInputDialog!!.window!!.attributes
//        lp.width = display.width //设置宽度
//        mTextMsgInputDialog!!.window!!.attributes = lp
//        mTextMsgInputDialog!!.setCancelable(true)
//        mTextMsgInputDialog!!.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
//        mTextMsgInputDialog!!.show()
//    }
//
//    inner class RoomVideoView(
//        var videoView: TXCloudVideoView, button: Button,
//        loadingBkg: FrameLayout, loadingImg: ImageView
//    ) {
//        var loadingBkg: FrameLayout
//        var loadingImg: ImageView
//        var kickButton: Button
//        var userID: String? = null
//
//        @JvmField
//        var isUsed: Boolean = false
//        fun startLoading() {
//            kickButton.visibility = View.INVISIBLE
//            loadingBkg.visibility = View.VISIBLE
//            loadingImg.visibility = View.VISIBLE
//            loadingImg.setImageResource(R.drawable.mlvb_linkmic_loading)
//            val ad = loadingImg.drawable as AnimationDrawable
//            ad.start()
//        }
//
//        fun stopLoading(showKickoutBtn: Boolean) {
//            kickButton.visibility = if (showKickoutBtn) View.VISIBLE else View.GONE
//            loadingBkg.visibility = View.GONE
//            loadingImg.visibility = View.GONE
//            val ad = loadingImg.drawable as AnimationDrawable
//            ad.stop()
//        }
//
//        fun stopLoading() {
//            kickButton.visibility = View.GONE
//            loadingBkg.visibility = View.GONE
//            loadingImg.visibility = View.GONE
//            val ad = loadingImg.drawable as AnimationDrawable
//            ad.stop()
//        }
//
//        fun setUsed(used: Boolean) {
//            videoView.visibility = if (used) View.VISIBLE else View.GONE
//            if (!used) {
//                stopLoading(false)
//            }
//            isUsed = used
//        }
//
//        init {
//            videoView.visibility = View.GONE
//            this.loadingBkg = loadingBkg
//            this.loadingImg = loadingImg
//            isUsed = false
//            kickButton = button
//            kickButton.setOnClickListener {
//                kickButton.visibility = View.INVISIBLE
//                val userID = userID
//                if (userID != null) {
//                    for (item in mPusherList!!) {
//                        if (userID.equals(item.userID, ignoreCase = true)) {
//                            onAnchorExit(item)
//                            break
//                        }
//                    }
//                    mActivityInterface!!.liveRoom.kickoutJoinAnchor(userID)
//                }
//            }
//        }
//    }
//
//    @Synchronized
//    fun applyVideoView(id: String?): RoomVideoView? {
//        if (id == null) {
//            return null
//        }
//        for (item in mPlayerViews) {
//            if (!item.isUsed) {
//                item.setUsed(true)
//                item.userID = id
//                return item
//            } else {
//                if (item.userID != null && item.userID == id) {
//                    item.setUsed(true)
//                    return item
//                }
//            }
//        }
//        return null
//    }
//
//    @Synchronized
//    fun recycleVideoView(id: String) {
//        for (item in mPlayerViews) {
//            if (item.userID != null && item.userID == id) {
//                item.userID = null
//                item.setUsed(false)
//            }
//        }
//    }
//
//    @Synchronized
//    fun recycleVideoView() {
//        for (item in mPlayerViews) {
//            item.userID = null
//            item.setUsed(false)
//        }
//    }
//
//    private inner class OnlinePusherListViewAdapter : BaseAdapter() {
//        private var dataList: List<AnchorInfo>? =
//            null
//
//        fun setDataList(dataList: List<AnchorInfo>?) {
//            this.dataList = dataList
//        }
//
//        override fun getCount(): Int {
//            return dataList!!.size
//        }
//
//        override fun getItem(position: Int): Any {
//            return dataList!![position]
//        }
//
//        override fun getItemId(position: Int): Long {
//            return position.toLong()
//        }
//
//        override fun getView(
//            position: Int,
//            convertView: View,
//            parent: ViewGroup
//        ): View {
//            var view = convertView as LinearLayout
//            if (view == null) {
//                view = LayoutInflater.from(mActivity!!.applicationContext).inflate(
//                    R.layout.mlvb_layout_liveroom_online_pusher,
//                    null
//                ) as LinearLayout
//            }
//            val pusherInfo =
//                dataList!![position]
//            mlvb_tv_user_name.text = pusherInfo.userName
//            return view
//        }
//    }
//
//    companion object {
//        private const val TAG = "LiveRoomChatFragment"
//        fun newInstance(
//            config: RoomInfo?,
//            userID: String?,
//            createRoom: Boolean
//        ): LiveRoomChatFragment {
//            val fragment = LiveRoomChatFragment()
//            val bundle = Bundle()
////            bundle.putParcelable("roomInfo", config)
//            bundle.putString("userID", userID)
//            bundle.putBoolean("createRoom", createRoom)
//            fragment.arguments = bundle
//            return fragment
//        }
//    }
//}